use super::*;

impl TagFamily {
    /// The Tag36H11 AprilTag family.
    pub fn tag36_h11() -> Self {
        Self {
            name: "tag36_h11".to_string(),
            width_at_border: 8,
            reversed_border: false,
            total_width: 10,
            nbits: 36,
            bit_x: vec![
                1, 2, 3, 4, 5, 2, 3, 4, 3, 6, 6, 6, 6, 6, 5, 5, 5, 4, 6, 5, 4, 3, 2, 5, 4, 3, 4, 1,
                1, 1, 1, 1, 2, 2, 2, 3,
            ],
            bit_y: vec![
                1, 1, 1, 1, 1, 2, 2, 2, 3, 1, 2, 3, 4, 5, 2, 3, 4, 3, 6, 6, 6, 6, 6, 5, 5, 5, 4, 6,
                5, 4, 3, 2, 5, 4, 3, 4,
            ],
            code_data: CODE_DATA.into(),
            quick_decode: QuickDecode::new(36, &CODE_DATA),
            sharpening_buffer: SharpeningBuffer::new(100),
        }
    }
}

pub static CODE_DATA: [usize; 587] = [
    0x0000000d7e00984b,
    0x0000000dda664ca7,
    0x0000000dc4a1c821,
    0x0000000e17b470e9,
    0x0000000ef91d01b1,
    0x0000000f429cdd73,
    0x000000005da29225,
    0x00000001106cba43,
    0x0000000223bed79d,
    0x000000021f51213c,
    0x000000033eb19ca6,
    0x00000003f76eb0f8,
    0x0000000469a97414,
    0x000000045dcfe0b0,
    0x00000004a6465f72,
    0x000000051801db96,
    0x00000005eb946b4e,
    0x000000068a7cc2ec,
    0x00000006f0ba2652,
    0x000000078765559d,
    0x000000087b83d129,
    0x000000086cc4a5c5,
    0x00000008b64df90f,
    0x00000009c577b611,
    0x0000000a3810f2f5,
    0x0000000af4d75b83,
    0x0000000b59a03fef,
    0x0000000bb1096f85,
    0x0000000d1b92fc76,
    0x0000000d0dd509d2,
    0x0000000e2cfda160,
    0x00000002ff497c63,
    0x000000047240671b,
    0x00000005047a2e55,
    0x0000000635ca87c7,
    0x0000000691254166,
    0x000000068f43d94a,
    0x00000006ef24bdb6,
    0x00000008cdd8f886,
    0x00000009de96b718,
    0x0000000aff6e5a8a,
    0x0000000bae46f029,
    0x0000000d225b6d59,
    0x0000000df8ba8c01,
    0x0000000e3744a22f,
    0x0000000fbb59375d,
    0x000000018a916828,
    0x000000022f29c1ba,
    0x0000000286887d58,
    0x000000041392322e,
    0x000000075d18ecd1,
    0x000000087c302743,
    0x00000008c6317ba9,
    0x00000009e40f36d7,
    0x0000000c0e5a806a,
    0x0000000cc78cb87c,
    0x000000012d2f2d01,
    0x0000000379f36a21,
    0x00000006973f59ac,
    0x00000007789ea9f4,
    0x00000008f1c73e84,
    0x00000008dd287a20,
    0x000000094a4eee4c,
    0x0000000a455379b5,
    0x0000000a9e92987d,
    0x0000000bd25cb40b,
    0x0000000be98d3582,
    0x0000000d3d5972b2,
    0x000000014c53d7c7,
    0x00000004f1796936,
    0x00000004e71fed1a,
    0x000000066d46fae0,
    0x0000000a55abb933,
    0x0000000ebee1acca,
    0x00000001ad4ba6a4,
    0x0000000305b17571,
    0x0000000553611351,
    0x000000059ca62775,
    0x00000007819cb6a1,
    0x0000000edb7bc9eb,
    0x00000005b2694212,
    0x000000072e12d185,
    0x0000000ed6152e2c,
    0x00000005bcdadbf3,
    0x000000078e0aa0c6,
    0x0000000c60a0b909,
    0x0000000ef9a34b0d,
    0x0000000398a6621a,
    0x0000000a8a27c944,
    0x00000004b564304e,
    0x000000052902b4e2,
    0x0000000857280b56,
    0x0000000a91b2c84b,
    0x0000000e91df939b,
    0x00000001fa405f28,
    0x000000023793ab86,
    0x000000068c17729f,
    0x00000009fbf3b840,
    0x000000036922413c,
    0x00000004eb5f946e,
    0x0000000533fe2404,
    0x000000063de7d35e,
    0x0000000925eddc72,
    0x000000099b8b3896,
    0x0000000aace4c708,
    0x0000000c22994af0,
    0x00000008f1eae41b,
    0x0000000d95fb486c,
    0x000000013fb77857,
    0x00000004fe0983a3,
    0x0000000d559bf8a9,
    0x0000000e1855d78d,
    0x0000000fec8daaad,
    0x000000071ecb6d95,
    0x0000000dc9e50e4c,
    0x0000000ca3a4c259,
    0x0000000740d12bbf,
    0x0000000aeedd18e0,
    0x0000000b509b9c8e,
    0x00000005232fea1c,
    0x000000019282d18b,
    0x000000076c22d67b,
    0x0000000936beb34b,
    0x000000008a5ea8dd,
    0x0000000679eadc28,
    0x0000000a08e119c5,
    0x000000020a6e3e24,
    0x00000007eab9c239,
    0x000000096632c32e,
    0x0000000470d06e44,
    0x00000008a70212fb,
    0x00000000a7e4251b,
    0x00000009ec762cc0,
    0x0000000d8a3a1f48,
    0x0000000db680f346,
    0x00000004a1e93a9d,
    0x0000000638ddc04f,
    0x00000004c2fcc993,
    0x000000001ef28c95,
    0x0000000bf0d9792d,
    0x00000006d27557c3,
    0x0000000623f977f4,
    0x000000035b43be57,
    0x0000000bb0c428d5,
    0x0000000a6f01474d,
    0x00000005a70c9749,
    0x000000020ddabc3b,
    0x00000002eabd78cf,
    0x000000090aa18f88,
    0x0000000a9ea89350,
    0x00000003cdb39b22,
    0x0000000839a08f34,
    0x0000000169bb814e,
    0x00000001a575ab08,
    0x0000000a04d3d5a2,
    0x0000000bf7902f2b,
    0x0000000095a5e65c,
    0x000000092e8fce94,
    0x000000067ef48d12,
    0x00000006400dbcac,
    0x0000000b12d8fb9f,
    0x00000000347f45d3,
    0x0000000b35826f56,
    0x0000000c546ac6e4,
    0x000000081cc35b66,
    0x000000041d14bd57,
    0x00000000c052b168,
    0x00000007d6ce5018,
    0x0000000ab4ed5ede,
    0x00000005af817119,
    0x0000000d1454b182,
    0x00000002badb090b,
    0x000000003fcb4c0c,
    0x00000002f1c28fd8,
    0x000000093608c6f7,
    0x00000004c93ba2b5,
    0x000000007d950a5d,
    0x0000000e54b3d3fc,
    0x000000015560cf9d,
    0x0000000189e4958a,
    0x000000062140e9d2,
    0x0000000723bc1cdb,
    0x00000002063f26fa,
    0x0000000fa08ab19f,
    0x00000007955641db,
    0x0000000646b01daa,
    0x000000071cd427cc,
    0x000000009a42f7d4,
    0x0000000717edc643,
    0x000000015eb94367,
    0x00000008392e6bb2,
    0x0000000832408542,
    0x00000002b9b874be,
    0x0000000b21f4730d,
    0x0000000b5d8f24c9,
    0x00000007dbaf6931,
    0x00000001b4e33629,
    0x000000013452e710,
    0x0000000e974af612,
    0x00000001df61d29a,
    0x000000099f2532ad,
    0x0000000e50ec71b4,
    0x00000005df0a36e8,
    0x00000004934e4cea,
    0x0000000e34a0b4bd,
    0x0000000b7b26b588,
    0x00000000f255118d,
    0x0000000d0c8fa31e,
    0x000000006a50c94f,
    0x0000000f28aa9f06,
    0x0000000131d194d8,
    0x0000000622e3da79,
    0x0000000ac7478303,
    0x0000000c8f2521d7,
    0x00000006c9c881f5,
    0x000000049e38b60a,
    0x0000000513d8df65,
    0x0000000d7c2b0785,
    0x00000009f6f9d75a,
    0x00000009f6966020,
    0x00000001e1a54e33,
    0x0000000c04d63419,
    0x0000000946e04cd7,
    0x00000001bdac5902,
    0x000000056469b830,
    0x0000000ffad59569,
    0x000000086970e7d8,
    0x00000008a4b41e12,
    0x0000000ad4688e3b,
    0x000000085f8f5df4,
    0x0000000d833a0893,
    0x00000002a36fdd7c,
    0x0000000d6a857cf2,
    0x00000008829bc35c,
    0x00000005e50d79bc,
    0x0000000fbb8035e4,
    0x0000000c1a95bebf,
    0x0000000036b0baf8,
    0x0000000e0da964ea,
    0x0000000b6483689b,
    0x00000007c8e2f4c1,
    0x00000005b856a23b,
    0x00000002fc183995,
    0x0000000e914b6d70,
    0x0000000b31041969,
    0x00000001bb478493,
    0x0000000063e2b456,
    0x0000000f2a082b9c,
    0x00000008e5e646ea,
    0x000000008172f8f6,
    0x00000000dacd923e,
    0x0000000e5dcf0e2e,
    0x0000000bf9446bae,
    0x00000004822d50d1,
    0x000000026e710bf5,
    0x0000000b90ba2a24,
    0x0000000f3b25aa73,
    0x0000000809ad589b,
    0x000000094cc1e254,
    0x00000005334a3adb,
    0x0000000592886b2f,
    0x0000000bf64704aa,
    0x0000000566dbf24c,
    0x000000072203e692,
    0x000000064e61e809,
    0x0000000d7259aad6,
    0x00000007b924aedc,
    0x00000002df2184e8,
    0x0000000353d1eca7,
    0x0000000fce30d7ce,
    0x0000000f7b0f436e,
    0x000000057e8d8f68,
    0x00000008c79e60db,
    0x00000009c8362b2b,
    0x000000063a5804f2,
    0x00000009298353dc,
    0x00000006f98a71c8,
    0x0000000a5731f693,
    0x000000021ca5c870,
    0x00000001c2107fd3,
    0x00000006181f6c39,
    0x000000019e574304,
    0x0000000329937606,
    0x0000000043d5c70d,
    0x00000009b18ff162,
    0x00000008e2ccfebf,
    0x000000072b7b9b54,
    0x00000009b71f4f3c,
    0x0000000935d7393e,
    0x000000065938881a,
    0x00000006a5bd6f2d,
    0x0000000a19783306,
    0x0000000e6472f4d7,
    0x000000081163df5a,
    0x0000000a838e1cbd,
    0x0000000982748477,
    0x0000000050c54feb,
    0x00000000d82fbb58,
    0x00000002c4c72799,
    0x000000097d259ad6,
    0x000000022d9a43ed,
    0x0000000fdb162a9f,
    0x00000000cb4a727d,
    0x00000004fae2e371,
    0x0000000535b5be8b,
    0x000000048795908a,
    0x0000000ce7c18962,
    0x00000004ea154d80,
    0x000000050c064889,
    0x00000008d97fc75d,
    0x0000000c8bd9ec61,
    0x000000083ee8e8bb,
    0x0000000c8431419a,
    0x00000001aa78079d,
    0x00000008111aa4a5,
    0x0000000dfa3a69fe,
    0x000000051630d83f,
    0x00000002d930fb3f,
    0x00000002133116e5,
    0x0000000ae5395522,
    0x0000000bc07a4e8a,
    0x000000057bf08ba0,
    0x00000006cb18036a,
    0x0000000f0e2e4b75,
    0x00000003eb692b6f,
    0x0000000d8178a3fa,
    0x0000000238cce6a6,
    0x0000000e97d5cdd7,
    0x0000000fe10d8d5e,
    0x0000000b39584a1d,
    0x0000000ca03536fd,
    0x0000000aa61f3998,
    0x000000072ff23ec2,
    0x000000015aa7d770,
    0x000000057a3a1282,
    0x0000000d1f3902dc,
    0x00000006554c9388,
    0x0000000fd01283c7,
    0x0000000e8baa42c5,
    0x000000072cee6adf,
    0x0000000f6614b3fa,
    0x000000095c3778a2,
    0x00000007da4cea7a,
    0x0000000d18a5912c,
    0x0000000d116426e5,
    0x000000027c17bc1c,
    0x0000000b95b53bc1,
    0x0000000c8f937a05,
    0x0000000ed220c9bd,
    0x00000000c97d72ab,
    0x00000008fb1217ae,
    0x000000025ca8a5a1,
    0x0000000b261b871b,
    0x00000001bef0a056,
    0x0000000806a51179,
    0x0000000eed249145,
    0x00000003f82aeceb,
    0x0000000cc56e9acf,
    0x00000002e78d01eb,
    0x0000000102cee17f,
    0x000000037caad3d5,
    0x000000016ac5b1ee,
    0x00000002af164ece,
    0x0000000d4cd81dc9,
    0x000000012263a7e7,
    0x000000057ac7d117,
    0x00000009391d9740,
    0x00000007aedaa77f,
    0x00000009675a3c72,
    0x0000000277f25191,
    0x0000000ebb6e64b9,
    0x00000007ad3ef747,
    0x000000012759b181,
    0x0000000948257d4d,
    0x0000000b63a850f6,
    0x00000003a52a8f75,
    0x00000004a019532c,
    0x0000000a021a7529,
    0x0000000cc661876d,
    0x00000004085afd05,
    0x0000000e7048e089,
    0x00000003f979cdc6,
    0x0000000d9da9071b,
    0x0000000ed2fc5b68,
    0x000000079d64c3a1,
    0x0000000fd44e2361,
    0x00000008eea46a74,
    0x000000042233b9c2,
    0x0000000ae4d1765d,
    0x00000007303a094c,
    0x00000002d7033abe,
    0x00000003dcc2b0b4,
    0x00000000f0967d09,
    0x000000006f0cd7de,
    0x000000009807aca0,
    0x00000003a295cad3,
    0x00000002b106b202,
    0x00000003f38a828e,
    0x000000078af46596,
    0x0000000bda2dc713,
    0x00000009a8c8c9d9,
    0x00000006a0f2ddce,
    0x0000000a76af6fe2,
    0x0000000086f66fa4,
    0x0000000d52d63f8d,
    0x000000089f7a6e73,
    0x0000000cc6b23362,
    0x0000000b4ebf3c39,
    0x0000000564f300fa,
    0x0000000e8de3a706,
    0x000000079a033b61,
    0x0000000765e160c5,
    0x0000000a266a4f85,
    0x0000000a68c38c24,
    0x0000000dca0711fb,
    0x000000085fba85ba,
    0x000000037a207b46,
    0x0000000158fcc4d0,
    0x00000000569d79b3,
    0x00000007b1a25555,
    0x0000000a8ae22468,
    0x00000007c592bdfd,
    0x00000000c59a5f66,
    0x0000000b1115daa3,
    0x0000000f17c87177,
    0x00000006769d766b,
    0x00000002b637356d,
    0x000000013d8685ac,
    0x0000000f24cb6ec0,
    0x00000000bd0b56d1,
    0x000000042ff0e26d,
    0x0000000b41609267,
    0x000000096f9518af,
    0x0000000c56f96636,
    0x00000004a8e10349,
    0x0000000863512171,
    0x0000000ea455d86c,
    0x0000000bd0e25279,
    0x0000000e65e3f761,
    0x000000036c84a922,
    0x000000085fd1b38f,
    0x0000000657c91539,
    0x000000015033fe04,
    0x000000009051c921,
    0x0000000ab27d80d8,
    0x0000000f92f7d0a1,
    0x00000008eb6bb737,
    0x000000010b5b0f63,
    0x00000006c9c7ad63,
    0x0000000f66fe70ae,
    0x0000000ca579bd92,
    0x0000000956198e4d,
    0x000000029e4405e5,
    0x0000000e44eb885c,
    0x000000041612456c,
    0x0000000ea45e0abf,
    0x0000000d326529bd,
    0x00000007b2c33cef,
    0x000000080bc9b558,
    0x00000007169b9740,
    0x0000000c37f99209,
    0x000000031ff6dab9,
    0x0000000c795190ed,
    0x0000000a7636e95f,
    0x00000009df075841,
    0x000000055a083932,
    0x0000000a7cbdf630,
    0x0000000409ea4ef0,
    0x000000092a1991b6,
    0x00000004b078dee9,
    0x0000000ae18ce9e4,
    0x00000005a6e1ef35,
    0x00000001a403bd59,
    0x000000031ea70a83,
    0x00000002bc3c4f3a,
    0x00000005c921b3cb,
    0x0000000042da05c5,
    0x00000001f667d16b,
    0x0000000416a368cf,
    0x0000000fbc0a7a3b,
    0x00000009419f0c7c,
    0x000000081be2fa03,
    0x000000034e2c172f,
    0x000000028648d8ae,
    0x0000000c7acbb885,
    0x000000045f31eb6a,
    0x0000000d1cfc0a7b,
    0x000000042c4d260d,
    0x0000000cf6584097,
    0x000000094b132b14,
    0x00000003c5c5df75,
    0x00000008ae596fef,
    0x0000000aea8054eb,
    0x00000000ae9cc573,
    0x0000000496fb731b,
    0x0000000ebf105662,
    0x0000000af9c83a37,
    0x0000000c0d64cd6b,
    0x00000007b608159a,
    0x0000000e74431642,
    0x0000000d6fb9d900,
    0x0000000291e99de0,
    0x000000010500ba9a,
    0x00000005cd05d037,
    0x0000000a87254fb2,
    0x00000009d7824a37,
    0x00000008b2c7b47c,
    0x000000030c788145,
    0x00000002f4e5a8be,
    0x0000000badb884da,
    0x0000000026e0d5c9,
    0x00000006fdbaa32e,
    0x000000034758eb31,
    0x0000000565cd1b4f,
    0x00000002bfd90fb0,
    0x0000000093052a6b,
    0x0000000d3c13c4b9,
    0x00000002daea43bf,
    0x0000000a279762bc,
    0x0000000f1bd9f22c,
    0x00000004b7fec94f,
    0x0000000545761d5a,
    0x00000007327df411,
    0x00000001b52a442e,
    0x000000049b0ce108,
    0x000000024c764bc8,
    0x0000000374563045,
    0x0000000a3e8f91c6,
    0x00000000e6bd2241,
    0x0000000e0e52ee3c,
    0x000000007e8e3caa,
    0x000000096c2b7372,
    0x000000033acbdfda,
    0x0000000b15d91e54,
    0x0000000464759ac1,
    0x00000006886a1998,
    0x000000057f5d3958,
    0x00000005a1f5c1f5,
    0x00000000b58158ad,
    0x0000000e712053fb,
    0x00000005352ddb25,
    0x0000000414b98ea0,
    0x000000074f89f546,
    0x000000038a56b3c3,
    0x000000038db0dc17,
    0x0000000aa016a755,
    0x0000000dc72366f5,
    0x00000000cee93d75,
    0x0000000b2fe7a56b,
    0x0000000a847ed390,
    0x00000008713ef88c,
    0x0000000a217cc861,
    0x00000008bca25d7b,
    0x0000000455526818,
    0x0000000ea3a7a180,
    0x0000000a9536e5e0,
    0x00000009b64a1975,
    0x00000005bfc756bc,
    0x0000000046aa169b,
    0x000000053a17f76f,
    0x00000004d6815274,
    0x0000000cca9cf3f6,
    0x00000004013fcb8b,
    0x00000003d26cdfa5,
    0x00000005786231f7,
    0x00000007d4ab09ab,
    0x0000000960b5ffbc,
    0x00000008914df0d4,
    0x00000002fc6f2213,
    0x0000000ac235637e,
    0x0000000151b28ed3,
    0x000000046f79b6db,
    0x00000001382e0c9f,
    0x000000053abf983a,
    0x0000000383c47ade,
    0x00000003fcf88978,
    0x0000000eb9079df7,
    0x000000009af0714d,
    0x0000000da19d1bb7,
    0x00000009a02749f8,
    0x00000001c62dab9b,
    0x00000001a137e44b,
    0x00000002867718c7,
    0x000000035815525b,
    0x00000007cd35c550,
    0x00000002164f73a0,
    0x0000000e8b772fe0,
];
